#!/usr/bin/env python
# -*- coding: utf-8 -*-

from py2deb import Py2deb
from glob import glob

import sys,os,re

import os,time
def megarun(cmds):
    for i in cmds.split("\n"):
        i=i.strip()
        if i:
            print i
            os.system(i)

from subprocess import Popen,PIPE
def run(cmds):
    p = Popen(cmds, shell=False,stdout=PIPE,stderr=PIPE)
    time.sleep(0.01)    # to avoid "IOError: [Errno 4] Interrupted system call"
    out = "".join(p.stdout.readlines() ).strip()
    outerr = "".join(p.stderr.readlines() ).strip()
    return out

if __name__ == "__main__":
    #==========================================================================
    # nettoie les sources
    #==========================================================================
    megarun(""" find . -name "*.pyc" | xargs rm -fr
                find . -name "*.orig" | xargs rm -fr
                find . -name "*.rej" | xargs rm -fr
                find . -name "*.bak" | xargs rm -fr
                find . -name "*.gladep" | xargs rm -fr
                find . -name "*.py~" | xargs rm -fr
                """)


    #==========================================================================
    # compile les sources
    #==========================================================================
    import compileall # http://effbot.org/zone/python-compile.htm
    compileall.compile_dir("fricorder", force=1)


    #==========================================================================
    # maj le num de version dans "fricorder/__init__.py" et dans -> v
    #==========================================================================
    try:
        v="0.7."+re.search("(\d+)\.$",run(["svn","update"])).groups(0)[0]
    except:
        v="test"
    open("fricorder/VERSION","w").write(v)


    #==========================================================================
    # recup du log -> log
    #==========================================================================
    try:
        log=run(["svn","log"])
    except:
        log=""

    #==========================================================================
    # fabrique le deb et le rpm
    #==========================================================================
    p=Py2deb("fricorder")
    p.author="manatlan"
    p.mail="manatlan@gmail.com"
    p.description="Programme permettant l'enregistrement différé de flux freebox dans le cadre du multiposte de free."
    p.url = "http://fricorder.googlecode.com"
    p.depends="bash, at, zenity, vlc, python-gtk2, python-glade2, python"

    p["/usr/share/applications"]=["data/fricorder.desktop|fricorder.desktop"]
    p["/usr/share/fricorder"]=[i+"|"+i[5:] for i in glob("data/*.*")+glob("data/templates/*")]
    p["/usr/lib/fricorder"]=glob("fricorder/*.py*")+["fricorder/VERSION","__init__.py"]
    p["/usr/bin"]=["fricorder.py|fricorder"]
    p["/usr/share/doc/fricorder"]=["README","COPYING",]
    print p
    p.generate(v,log,rpm=True,src=True)
